﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XF.Meeting.Entity.ADEntity
{
    public class UserEntity
    {
        public UserEntity()
        {
        }

        #region MyRegion
        private string _Guid = string.Empty;
        private string _ParentGuid = string.Empty;
        private string _Parent_DName = string.Empty;
        private string _UserPrincipalName = string.Empty;
        private DateTime _AccountExpiresTime = Convert.ToDateTime("1900-01-01");
        private bool _ChangePwdNext = false;
        private bool _PasswordNerverExpire = true;
        private DateTime _PasswordExpireTime = Convert.ToDateTime("1900-01-01");
        private bool _PasswordExpired = false;
        private DateTime _WhenChanged = Convert.ToDateTime("1900-01-01");
        private DateTime _WhenCreated = Convert.ToDateTime("1900-01-01");
        private bool _IsDisable = false;
        private bool _IsLocked = false;
        private bool _AccountNeverExpired = false;
        private string _cn = string.Empty;
        private string _sn = string.Empty;
        private string _givenName = string.Empty;
        private string _displayname = string.Empty;
        private string _description = string.Empty;
        private string _physicalDeliveryOfficeName = string.Empty;
        private string _mail = string.Empty;
        private string _telephoneNumber = string.Empty;
        private string _St = string.Empty;
        private string _L = string.Empty;
        private string _streetAddress = string.Empty;
        private string _postalCode = string.Empty;
        private string _Company = string.Empty;
        private string _Department = string.Empty;
        private string _Title = string.Empty;
        private string _mobile = string.Empty;
        private DateTime _LastLogin = Convert.ToDateTime("1900-01-01");
        private UsetType _UserType = UsetType.User;
        private int _Group_Type = 0;
        private string _sAMAccountName = string.Empty;
        private string _ManagedBy = string.Empty;

        private string _ThumbnailPhoto_AbsolutePath = string.Empty;
        private int _Sort = 999;
        private string _ThumbnailPhoto_RelativePath = string.Empty;
        private string _employeeID = string.Empty;
        private string _DName = string.Empty;

        public string Guid
        {
            get { return _Guid; }
            set { _Guid = value; }
        }

        public string SAMAccountName
        {
            get { return _sAMAccountName; }
            set { _sAMAccountName = value; }
        }

        public string DName
        {
            get { return _DName; }
            set { _DName = value; }
        }

        public string ParentGuid
        {
            get { return _ParentGuid; }
            set { _ParentGuid = value; }
        }

        public string Parent_DName
        {
            get { return _Parent_DName; }
            set { _Parent_DName = value; }
        }

        public string UserPrincipalName
        {
            get { return _UserPrincipalName; }
            set { _UserPrincipalName = value; }
        }

        public DateTime AccountExpiresTime
        {
            get { return _AccountExpiresTime; }
            set { _AccountExpiresTime = value; }
        }

        public bool ChangePwdNext
        {
            get { return _ChangePwdNext; }
            set { _ChangePwdNext = value; }
        }

        public bool PasswordNerverExpire
        {
            get { return _PasswordNerverExpire; }
            set { _PasswordNerverExpire = value; }
        }

        public DateTime PasswordExpireTime
        {
            get { return _PasswordExpireTime; }
            set { _PasswordExpireTime = value; }
        }

        public bool PasswordExpired
        {
            get { return _PasswordExpired; }
            set { _PasswordExpired = value; }
        }

        public DateTime WhenChanged
        {
            get { return _WhenChanged; }
            set { _WhenChanged = value; }
        }

        public DateTime WhenCreated
        {
            get { return _WhenCreated; }
            set { _WhenCreated = value; }
        }

        public bool IsDisable
        {
            get { return _IsDisable; }
            set { _IsDisable = value; }
        }

        public bool IsLocked
        {
            get { return _IsLocked; }
            set { _IsLocked = value; }
        }

        public string Cn
        {
            get { return _cn; }
            set { _cn = value; }
        }


        public string Sn
        {
            get { return _sn; }
            set { _sn = value; }
        }

        public string GivenName
        {
            get { return _givenName; }
            set { _givenName = value; }
        }

        public string Displayname
        {
            get { return _displayname; }
            set { _displayname = value; }
        }

        public string Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public string PhysicalDeliveryOfficeName
        {
            get { return _physicalDeliveryOfficeName; }
            set { _physicalDeliveryOfficeName = value; }
        }

        public string Mail
        {
            get { return _mail; }
            set { _mail = value; }
        }

        public string TelephoneNumber
        {
            get { return _telephoneNumber; }
            set { _telephoneNumber = value; }
        }

        public string St
        {
            get { return _St; }
            set { _St = value; }
        }

        public string L
        {
            get { return _L; }
            set { _L = value; }
        }

        public string StreetAddress
        {
            get { return _streetAddress; }
            set { _streetAddress = value; }
        }

        public string PostalCode
        {
            get { return _postalCode; }
            set { _postalCode = value; }
        }

        public string Mobile
        {
            get { return _mobile; }
            set { _mobile = value; }
        }

        public string Title
        {
            get { return _Title; }
            set { _Title = value; }
        }

        public string Department
        {
            get { return _Department; }
            set { _Department = value; }
        }

        public string Company
        {
            get { return _Company; }
            set { _Company = value; }
        }

        public bool AccountNeverExpired
        {
            get { return _AccountNeverExpired; }
            set { _AccountNeverExpired = value; }
        }



        public DateTime LastLogin
        {
            get { return _LastLogin; }
            set { _LastLogin = value; }
        }

        private bool _IsLyncUser = false;

        public bool Lync_IsLyncUser
        {
            get { return _IsLyncUser; }
            set { _IsLyncUser = value; }
        }
        private string _lync_SipAddress = string.Empty;

        public string Lync_SipAddress
        {
            get { return _lync_SipAddress; }
            set { _lync_SipAddress = value; }
        }
        private bool _Exchange_IsExchangeUser = false;

        public bool Exchange_IsExchangeUser
        {
            get { return _Exchange_IsExchangeUser; }
            set { _Exchange_IsExchangeUser = value; }
        }

        private string _Exchange_PrimarySmtpName = string.Empty;

        public string Exchange_PrimarySmtpName
        {
            get { return _Exchange_PrimarySmtpName; }
            set { _Exchange_PrimarySmtpName = value; }
        }

        public UsetType UserType
        {
            get { return _UserType; }
            set { _UserType = value; }
        }

        public int Group_Type
        {
            get { return _Group_Type; }
            set { _Group_Type = value; }
        }

        public string ManagedBy
        {
            get { return _ManagedBy; }
            set { _ManagedBy = value; }
        }

        public int Sort
        {
            get { return _Sort; }
            set { _Sort = value; }
        }






















        #endregion
    }
    public enum UsetType
    {
        /// <summary>
        /// ad用户
        /// </summary>
        User = 0,
        /// <summary>
        /// ad组
        /// </summary>
        Group = 1,

        /// <summary>
        /// 计算机
        /// </summary>
        Computer = 2,
        /// <summary>
        /// 授权
        /// </summary>
        Empower = 3,
        /// <summary>
        /// 数据操作
        /// </summary>
        Operate = 4,
        /// <summary>
        /// 组成员
        /// </summary>
        GroupMember = 5,
    }
}
